home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 21 / AMIGAplus Sonderheft 21 (1999)(ICP)(DE)[!].iso / PublicDomain / Anwendungen / Identify / Identify_dev / developer / identify.doc < prev    next >
Text File  |  1999-08-23  |  28KB  |  832 lines

  1. TABLE OF CONTENTS
  2.  
  3. identify.library/IdAlert
  4. identify.library/IdEstimateFormatSize
  5. identify.library/IdExpansion
  6. identify.library/IdFormatString
  7. identify.library/IdFunction
  8. identify.library/IdHardware
  9. identify.library/IdHardwareNum
  10. identify.library/IdHardwareUpdate
  11.  
  12. identify.library/IdAlert
  13.  
  14.    NAME
  15.         IdAlert - get description of an alert (V3)
  16.  
  17.    SYNOPSIS
  18.         Error = IdAlert(Code,TagList)
  19.         D0.l            D0.l   A0.l
  20.  
  21.         LONG IdAlert(ULONG, struct TagItem *);
  22.  
  23.         Error = IdAlertTags(Code,Tag1,...)
  24.  
  25.         LONG IdAlertTags(ULONG, ULONG,...);
  26.  
  27.    FUNCTION
  28.         Get a human readable description of the alert ('Guru') code.
  29.  
  30.    INPUTS
  31.         Code          -- (ULONG) alert code, as defined in exec/alerts.h
  32.  
  33.         TagList       -- (struct TagItem *) tags that describe further
  34.                          options.
  35.  
  36.    RESULT
  37.         Error         -- (LONG) error code, or 0 if everything went fine.
  38.  
  39.    TAGS
  40.         IDTAG_DeadStr           -- (STRPTR) Alert type string (deadend or
  41.                 recoverable). You may skip this tag if you do not want to get
  42.                 the string.
  43.  
  44.         IDTAG_SubsysStr         -- (STRPTR) String of the subsystem that caused
  45.                 the alert (CPU, exec.library, ...). You may skip this tag if you
  46.                 do not want to get the string.
  47.  
  48.         IDTAG_GeneralStr        -- (STRPTR) General alert cause. You  may skip
  49.                 this tag if you do not want to get the string.
  50.  
  51.         IDTAG_SpecStr           -- (STRPTR) Specified alert cause. You may skip
  52.                 this tag if you do not want to get the string.
  53.  
  54.         IDTAG_StrLength         -- (UWORD) Maximum length of the string buffer,
  55.                 including termination. Defaults to 50.
  56.  
  57.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  58.                 only, TRUE for localized strings. This is useful for applications
  59.                 with English as only language. Defaults to TRUE.
  60.  
  61.    NOTE
  62.         This call is guaranteed to preserve all registers except D0.
  63.  
  64.    BUGS
  65.  
  66.    SEE ALSO
  67.  
  68. identify.library/IdEstimateFormatSize
  69.    NAME
  70.         IdEstimateFormatSize - estimate size of a format buffer (V11)
  71.  
  72.    SYNOPSIS
  73.         Length = IdEstimateFormatSize(String,Tags)
  74.          D0.l                          A0.l  A1.l
  75.  
  76.         ULONG IdEstimateFormatSize(STRPTR, struct TagItem *);
  77.  
  78.         Length = IdEstimateFormatSizeTags(String,Tag1,...)
  79.  
  80.         ULONG IdEstimateFormatSizeTags(STRPTR,ULONG,...);
  81.  
  82.    FUNCTION
  83.         Estimates the size of the buffer that will contain the output
  84.         of the format string when used on IdFormatString().
  85.  
  86.    INPUTS
  87.         String          -- (STRPTR) Format string
  88.         Tags            -- (struct TagItem *) Tags, currently NULL or
  89.                 TAG_DONE.
  90.  
  91.    RESULT
  92.         Length          -- (ULONG) Length of the buffer size that will
  93.                 be able to hold the entire result.
  94.  
  95.    NOTE
  96.         The returned size will be large enough to contain the result
  97.         of a IdFormatString(). It is not necessarily the size of the
  98.         resulting buffer (the result length of IdFormatString()).
  99.  
  100.         This call is guaranteed to preserve all registers except D0.
  101.  
  102.    BUGS
  103.  
  104.    SEE ALSO
  105.         IdHardware(), IdFormatString()
  106.  
  107. identify.library/IdExpansion
  108.  
  109.    NAME
  110.         IdExpansion - get name of expansion board (V3)
  111.  
  112.    SYNOPSIS
  113.         Error = IdExpansion(TagList)
  114.         D0.l                  A0.l
  115.  
  116.         LONG IdExpansion(struct TagItem *);
  117.  
  118.         Error = IdExpansionTags(Tag1,...)
  119.  
  120.         LONG IdExpansionTags(ULONG,...);
  121.  
  122.    FUNCTION
  123.         Gets the name and class of the expansion and it's manufacturer.
  124.  
  125.    INPUTS
  126.         TagList       -- (struct TagItem *) tags that describe further
  127.                          options.
  128.    RESULT
  129.         Error         -- (LONG) error code, or 0 if everything went fine.
  130.  
  131.                 IDERR_NOLENGTH  -- IDTAG_StrLength has been set to 0!
  132.                 IDERR_BADID     -- IDTAG_ManufID and IDTAG_ProdID were
  133.                         out of range or one of them was missing.
  134.                 IDERR_DONE      -- Checked all expansions using the
  135.                         IDTAG_Expansion tag. This is not really an error.
  136.                 IDERR_SECONDARY -- This expansion is secondary to a primary
  137.                         expansion entry.
  138.  
  139.    TAGS
  140.         IDTAG_ConfigDev         -- (struct ConfigDev *) ConfigDev structure
  141.                 containing all information. You should use this tag if ever
  142.                 possible, since there are more possibilities to recognize and
  143.                 distinguish between a board.
  144.  
  145.         IDTAG_ManufID           -- (UWORD) Manufacturer ID if ConfigDev is not
  146.                 provided. You must also provide IDTAG_ProdID!
  147.  
  148.         IDTAG_ProdID            -- (UBYTE) Product ID if ConfigDev is not
  149.                 provided. You must also provide IDTAG_ManufID!
  150.  
  151.         IDTAG_ManufStr          -- (STRPTR) Pointer to a buffer space for the
  152.                 manufacturer name. You may skip this tag if you do not want
  153.                 to get this string.
  154.  
  155.         IDTAG_ProdStr           -- (STRPTR) Pointer to a buffer space for the
  156.                 product name. You may skip this tag if you do not want to get
  157.                 this string.
  158.  
  159.         IDTAG_ClassStr          -- (STRPTR) Pointer to a buffer space for the
  160.                 product class. You may skip this tag if you do not want to get
  161.                 this string.
  162.  
  163.         IDTAG_StrLength         -- (UWORD) Buffer length, including
  164.                 termination. Defaults to 50.
  165.  
  166.         IDTAG_Expansion         -- [V6] (struct ConfigDev **) Use this tag to
  167.                 easily traverse through the expansion board list. Init the
  168.                 pointed variable with NULL. After each call, you will find
  169.                 the current ConfigDev pointer in this variable. If you are
  170.                 done, this function returns IDERR_DONE and the variable is set
  171.                 to NULL. See example.
  172.  
  173.         IDTAG_Secondary         -- [V7] (BOOL) If set to TRUE, identify will
  174.                 warn about secondary expansions. E.g. some graphic boards
  175.                 create more than one entry in the expansion list. Then, one
  176.                 entry is the primary entry, and any additional are secondary.
  177.                 This tag does only make sense when checking all mounted
  178.                 expansions. Defaults to FALSE. (See Bugs)
  179.  
  180.         IDTAG_ClassID           -- [V8] (ULONG *) The ULONG field will be filled
  181.                 with a numerical class ID of the expansion (see include file:
  182.                 IDCID_...). IMPORTANT: You MUST be prepared to get a number
  183.                 that does not match to any IDCID value. In this case, assume
  184.                 IDCID_MISC.
  185.  
  186.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  187.                 only, TRUE for localized strings. This is useful for applications
  188.                 with English as only language. Defaults to TRUE.
  189.  
  190.    EXAMPLE
  191.         To check all expansion boards, you may use this code:
  192.  
  193.         void PrintExpansions(void)
  194.         {
  195.           struct ConfigDev *expans = NULL;
  196.           char manuf[IDENTIFYBUFLEN];
  197.           char prod[IDENTIFYBUFLEN];
  198.           char pclass[IDENTIFYBUFLEN];
  199.  
  200.           while(!IdExpansionTags(
  201.                   IDTAG_ManufStr ,manuf,
  202.                   IDTAG_ProdStr  ,prod,
  203.                   IDTAG_ClassStr ,pclass,
  204.                   IDTAG_Expansion,&expans,
  205.                   TAG_DONE))
  206.           {
  207.             Printf("Current ConfigDev = 0x%08lx\n",expans);
  208.             Printf("  Manufacturer    = %s\n",manuf);
  209.             Printf("  Product         = %s\n",prod);
  210.             Printf("  Expansion class = %s\n\n",class);
  211.           }
  212.         }
  213.  
  214.    NOTE
  215.         If the manufacturer or the product is not known, the string will be
  216.         filled with its number.
  217.  
  218.         This call is guaranteed to preserve all registers except D0.
  219.  
  220.    BUGS
  221.         You must also provide IDTAG_ProdStr if you want to use IDTAG_Secondary.
  222.  
  223.         There are by far not all existing boards implemented. Please send
  224.         the manufacturer id and name and the products id, name and class
  225.         of all unknown boards to me. My E-Mail: "shred@eratosthenes.starfleet.de"
  226.  
  227.    SEE ALSO
  228.  
  229. identify.library/IdFormatString
  230.    NAME
  231.         IdFormatString - format a hardware string (V11)
  232.  
  233.    SYNOPSIS
  234.         Length = IdFormatString(String,Buffer,Length,Tags)
  235.          D0.l                    A0.l   A1.l   D0.l  A2.l
  236.  
  237.         ULONG IdFormatString(STRPTR, STRPTR, ULONG, struct TagItem *);
  238.  
  239.         Length = IdFormatStringTags(String,Buffer,Length,Tag1,...)
  240.  
  241.         ULONG IdFormatStringTags(STRPTR, STRPTR, ULONG, ...);
  242.  
  243.    FUNCTION
  244.         The buffer will be filled with the format string until
  245.         the format string terminates or the buffer size is reached.
  246.  
  247.         The format string may contain format tags, which are
  248.         surrounded by dollar signs. Doing so, the printf formattings
  249.         are kept for a following printf.
  250.  
  251.         Format tags are case sensitive!
  252.  
  253.         If you want to write a dollar sign, then double it: '$$'.
  254.  
  255.         These format tags are known:
  256.  
  257.                 $SYSTEM$
  258.                 $CPU$
  259.                 $FPU$
  260.                 $MMU$
  261.                 $OSVER$
  262.                 $EXECVER$
  263.                 $WBVER$
  264.                 $ROMSIZE$
  265.                 $CHIPSET$
  266.                 $GFXSYS$
  267.                 $CHIPRAM$
  268.                 $FASTRAM$
  269.                 $RAM$
  270.                 $SETPATCHVER$
  271.                 $AUDIOSYS$
  272.                 $OSNR$
  273.                 $VMMCHIPRAM$
  274.                 $VMMFASTRAM$
  275.                 $VMMRAM$
  276.                 $PLNCHIPRAM$
  277.                 $PLNFASTRAM$
  278.                 $PLNRAM$
  279.                 $VBR$
  280.                 $LASTALERT$
  281.                 $VBLANKFREQ$
  282.                 $POWERFREQ$
  283.                 $ECLOCK$
  284.                 $SLOWRAM$
  285.                 $GARY$
  286.                 $RAMSEY$
  287.                 $BATTCLOCK$
  288.                 $CHUNKYPLANAR$
  289.                 $POWERPC$
  290.                 $PPCCLOCK$
  291.                 $CPUREV$
  292.                 $CPUCLOCK$
  293.                 $FPUCLOCK$
  294.                 $RAMACCESS$
  295.                 $RAMWIDTH$
  296.                 $RAMCAS$
  297.                 $RAMBANDWIDTH$
  298.                 $TCPIP$
  299.                 $PPCOS$
  300.                 $AGNUS$
  301.                 $AGNUSMODE$
  302.                 $DENISE$
  303.                 $DENISEREV$
  304.  
  305.         For their meanings, see the include file.
  306.  
  307.    INPUTS
  308.         String          -- (STRPTR) Format string
  309.  
  310.         Buffer          -- (STRPTR) Buffer to be filled with the result
  311.                 until the format string terminates or the buffer size
  312.                 is reached.
  313.  
  314.         Length          -- (ULONG) Length of the buffer, including the
  315.                 null termination.
  316.  
  317.         Tags            -- (struct TagItem *) For future compatibility.
  318.                 You must provide NULL or a pointer to TAG_DONE.
  319.  
  320.    TAGS
  321.  
  322.    RESULT
  323.         Length          -- (ULONG) Length of the buffer that really
  324.                 has been used.
  325.  
  326.    EXAMPLE
  327.         "Your CPU is a $CPU$ with $CPUCLOCK$ MHz"
  328.  
  329.    NOTE
  330.         Remember that, unlike RawDoFmt(), the format tags must be
  331.         surrounded, i.e. started and ended, by a dollar sign '$'.
  332.  
  333.         This call is guaranteed to preserve all registers except D0.
  334.  
  335.    BUGS
  336.  
  337.    SEE ALSO
  338.         IdHardware(), IdEstimateFormatSize()
  339.  
  340. identify.library/IdFunction
  341.  
  342.    NAME
  343.         IdFunction - identify function name by offset (V4)
  344.  
  345.    SYNOPSIS
  346.         Error = IdFunction(LibName,Offset,TagList)
  347.         D0.l                A0.l    D0.l   A1.l
  348.  
  349.         LONG IdFunction(STRPTR, LONG, struct TagItem *);
  350.  
  351.         Error = IdFunctionTags(LibName,Offset,Tag1,...)
  352.  
  353.         LONG IdFunctionTags(STRPTR, LONG, ULONG,...);
  354.  
  355.    FUNCTION
  356.         Decodes the offset of the provided library name into function name.
  357.  
  358.         This function requires the .fd files in a drawer with 'FD:' assigned
  359.         to it. All files must have the standard file name format, e.g.
  360.         'exec_lib.fd'.
  361.  
  362.         The appropriate .fd file will be scanned. The result will be
  363.         cached until the identify.library is removed from system.
  364.  
  365.    INPUTS
  366.         LibName       -- (STRPTR) name of the function's library, device
  367.                         or resource. All letters behind the point (and
  368.                         the point itself) are optional. The name is
  369.                         case sensitive.
  370.  
  371.                         Examples: 'exec.library', 'dos', 'cia.resource'.
  372.  
  373.         Offset        -- (LONG) offset of the function. It must be a
  374.                         multiple of 6. You do not need to provide the
  375.                         minus sign.
  376.  
  377.                         Examples: -456, 60
  378.  
  379.         TagList       -- (struct TagItem *) tags that describe further
  380.                         options.
  381.  
  382.    RESULT
  383.         Error         -- (LONG) error code, or 0 if everything went fine.
  384.  
  385.    TAGS
  386.         IDTAG_FuncNameStr       -- (STRPTR) Buffer where the function name
  387.                 will be copied into.
  388.  
  389.         IDTAG_StrLength -- (UWORD) Maximum length of the string buffer,
  390.                 including termination. Defaults to 50.
  391.  
  392.    NOTE
  393.         This call is guaranteed to preserve all registers except D0.
  394.  
  395.    BUGS
  396.         Every line in the .fd file must have a maximum of 254 characters.
  397.         Otherwise the internal offset table may be corrupted (but the
  398.         system won't be harmed). Anyhow, this should be no problem.
  399.  
  400.    SEE ALSO
  401.  
  402. identify.library/IdHardware
  403.    NAME
  404.         IdHardware - get information about the system, string (V3)
  405.  
  406.    SYNOPSIS
  407.         String = IdHardware(Type,TagList)
  408.          D0.l               D0.l   A0.l
  409.  
  410.         STRPTR IdHardware(ULONG, struct TagItem *);
  411.  
  412.         String = IdHardwareTags(Type,Tag1,...)
  413.  
  414.         STRPTR IdHardwareTags(ULONG, ULONG,...);
  415.  
  416.    FUNCTION
  417.         Gets information about the current system environment. The result
  418.         is returned as read only string. This function is fully DraCo
  419.         compatible!
  420.  
  421.         Once a information has been evaluated, it will be cached internally,
  422.         so changes will be ignored. Use IdHardwareUpdate() to clear the cache
  423.         contents.
  424.  
  425.    INPUTS
  426.         Type          -- (ULONG) Information type. These types are known:
  427.  
  428.                 IDHW_SYSTEM     -- What system is used?
  429.                         (e. g. "Amiga 4000")
  430.  
  431.                 IDHW_CPU        -- What kind of CPU is available?
  432.                         (e. g. "68060")
  433.  
  434.                 IDHW_FPU        -- What kind of FPU is available?
  435.                         (e. g. "68060")
  436.  
  437.                 IDHW_MMU        -- What kind of MMU is available?
  438.                         (e. g. "68060")
  439.  
  440.                 IDHW_OSVER      -- What OS version is used?
  441.                         (e.g. "V39.106")
  442.  
  443.                 IDHW_EXECVER    -- What exec version is used?
  444.                         (e.g. "V39.47")
  445.  
  446.                 IDHW_WBVER      -- What WorkBench version is used?
  447.                         (e.g. "V39.29")
  448.  
  449.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  450.                         (e.g. "512KB")
  451.  
  452.                 IDHW_CHIPSET    -- What Chipset is available?
  453.                         (e.g. "AGA")
  454.  
  455.                 IDHW_GFXSYS     -- What Graphic OS is used?
  456.                         (e.g. "CyberGraphX")
  457.  
  458.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  459.                         (e.g. "~2.0MB")
  460.  
  461.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  462.                         (e.g. "12.0MB")
  463.  
  464.                 IDHW_RAM        -- Size of complete System RAM
  465.                         (e.g. "~14.0MB")
  466.  
  467.                 IDHW_SETPATCHVER -- [V4] Version of current SetPatch
  468.                         (e.g. "V40.14")
  469.  
  470.                 IDHW_AUDIOSYS   -- [V5] What Audio OS is used?
  471.                         (e.g. "AHI")
  472.  
  473.                 IDHW_OSNR       -- [V5] What AmigaOS is used?
  474.                         (e.g. "3.1")
  475.  
  476.                 IDHW_VMMCHIPRAM -- [V5] Size of virtual Chip RAM
  477.                         (e.g. "0")
  478.  
  479.                 IDHW_VMMFASTRAM -- [V5] Size of virtual Fast RAM
  480.                         (e.g. "40.0MB")
  481.  
  482.                 IDHW_VMMRAM     -- [V5] Size of total virtual RAM
  483.                         (e.g. "40.0MB")
  484.  
  485.                 IDHW_PLNCHIPRAM -- [V5] Size of non-virtual Chip RAM
  486.                         (e.g. "2.0MB")
  487.  
  488.                 IDHW_PLNFASTRAM -- [V5] Size of non-virtual Fast RAM
  489.                         (e.g. "12.0MB")
  490.  
  491.                 IDHW_PLNRAM     -- [V5] Size of total non-virtual RAM
  492.                         (e.g. "14.0MB")
  493.  
  494.                 IDHW_VBR        -- [V6] Vector Base Register contents
  495.                         (e.g. "0x0806C848")
  496.  
  497.                 IDHW_LASTALERT  -- [V6] Last Alert code
  498.                         (e.g. "80000003")
  499.  
  500.                 IDHW_VBLANKFREQ -- [V6] VBlank frequency (see execbase.h)
  501.                         (e.g. "50 Hz")
  502.  
  503.                 IDHW_POWERFREQ  -- [V6] Power supply frequency (see execbase.h)
  504.                         (e.g. "50 Hz")
  505.  
  506.                 IDHW_ECLOCK     -- [V6] System E clock frequency
  507.                         (e.g. "709379 Hz")
  508.  
  509.                 IDHW_SLOWRAM    -- [V6] A500/A2000 "Slow" RAM expansion
  510.                         (e.g. "512.0KB")
  511.  
  512.                 IDHW_GARY       -- [V6] GARY revision
  513.                         (e.g. "Normal")
  514.  
  515.                 IDHW_RAMSEY     -- [V6] RAMSEY revision
  516.                         (e.g. "F")
  517.  
  518.                 IDHW_BATTCLOCK  -- [V6] Battery backed up clock present?
  519.                         (e.g. "Found")
  520.  
  521.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  522.                         (e.g. "Found")
  523.  
  524.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  525.                         (e.g. "603e")
  526.  
  527.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  528.                         (e.g. "200 MHz")
  529.  
  530.                 IDHW_CPUREV     -- [V8] Revision of the main processor, if
  531.                         available (e.g. "Rev 1")
  532.  
  533.                 IDHW_CPUCLOCK   -- [V8] CPU clock
  534.                         (e.g. "50 MHz")
  535.  
  536.                 IDHW_FPUCLOCK   -- [V8] FPU clock, if available
  537.                         (e.g. "50 MHz")
  538.  
  539.                 IDHW_RAMACCESS  -- [V8] Access time of the main board RAM
  540.                         (e.g. "80 ns")
  541.  
  542.                 IDHW_RAMWIDTH   -- [V8] Width of the main board RAM
  543.                         (e.g. "16 bit")
  544.  
  545.                 IDHW_RAMCAS     -- [V8] CAS mode of the main board RAM
  546.                         (e.g. "Double")
  547.  
  548.                 IDHW_RAMBANDWIDTH -- [V8] Bandwidth of the main board RAM
  549.                         (e.g. "2")
  550.  
  551.                 IDHW_TCPIP      -- [V9] Used TCP/IP stack
  552.                         (e.g. "AmiTCP/IP")
  553.  
  554.                 IDHW_PPCOS      -- [V9] Used PowerPC OS
  555.                         (e.g. "PowerUp")
  556.  
  557.                 IDHW_AGNUS      -- [V9] Agnus chip type and revision
  558.                         (e.g. "Alice 8374 Rev. 3-4")
  559.  
  560.                 IDHW_AGNUSMODE  -- [V9] Agnus chip mode
  561.                         (e.g. "PAL")
  562.  
  563.                 IDHW_DENISE     -- [V10] Denise chip type
  564.                         (e.g. "Lisa 8364")
  565.  
  566.                 IDHW_DENISEREV  -- [V10] Denise chip revision
  567.                         (e.g. "0")
  568.  
  569.         TagList       -- (struct TagItem *) tags that describe further
  570.                          options. You may provide NULL.
  571.  
  572.    TAGS
  573.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  574.                 only, TRUE for localized strings. This is useful for applications
  575.                 with English as only language. Defaults to TRUE.
  576.  
  577.         IDTAG_NULL4NA           -- [V8] (BOOL) TRUE to get NULL pointer instead
  578.                 of a 'not available' string. Defaults to FALSE.
  579.  
  580.    RESULT
  581.         String        -- (STRPTR) String containing the desired
  582.                 information, or NULL if not available. Note that
  583.                 all strings are READ ONLY!
  584.  
  585.    NOTE
  586.         This call is guaranteed to preserve all registers except D0.
  587.  
  588.    BUGS
  589.  
  590.    SEE ALSO
  591.         IdHardwareNum(), IdHardwareUpdate()
  592.  
  593. identify.library/IdHardwareNum
  594.    NAME
  595.         IdHardwareNum - get information about the system, numerical (V6)
  596.  
  597.    SYNOPSIS
  598.         Result = IdHardwareNum(Type,TagList)
  599.          D0.l                  D0.l   A0.l
  600.  
  601.         ULONG IdHardwareNum(ULONG, struct TagItem *);
  602.  
  603.         Result = IdHardwareNumTags(Type,Tag1,...)
  604.  
  605.         ULONG IdHardwareNumTags(ULONG, ULONG,...);
  606.  
  607.    FUNCTION
  608.         Gets information about the current system environment. The result
  609.         is returned numerical. This function is fully DraCo compatible!
  610.  
  611.         Once a information has been read, it will be cached internally, so
  612.         changes will be ignored. Use IdHardwareUpdate() to clear the cache
  613.         contents.
  614.  
  615.    INPUTS
  616.         Type          -- (ULONG) Information type. These types are known
  617.                 (see include file and NOTE for detailed description):
  618.  
  619.                 IDHW_SYSTEM     -- What system is used?
  620.                         (include file: IDSYS_...)
  621.  
  622.                 IDHW_CPU        -- What kind of CPU is available?
  623.                         (include file: IDCPU_...)
  624.  
  625.                 IDHW_FPU        -- What kind of FPU is available?
  626.                         (include file: IDFPU_...)
  627.  
  628.                 IDHW_MMU        -- What kind of MMU is available?
  629.                         (include file: IDMMU_...)
  630.  
  631.                 IDHW_OSVER      -- What OS version is used?
  632.                         (version, revision)
  633.  
  634.                 IDHW_EXECVER    -- What exec version is used?
  635.                         (version, revision)
  636.  
  637.                 IDHW_WBVER      -- What WorkBench version is used?
  638.                         (version, revision; 0 if not available)
  639.  
  640.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  641.                         (size in bytes)
  642.  
  643.                 IDHW_CHIPSET    -- What Chipset is available?
  644.                         (include file: IDCS_...)
  645.  
  646.                 IDHW_GFXSYS     -- What Graphic OS is used?
  647.                         (include file: IDGOS_...)
  648.  
  649.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  650.                         (size in bytes)
  651.  
  652.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  653.                         (size in bytes)
  654.  
  655.                 IDHW_RAM        -- Size of complete System RAM
  656.                         (size in bytes)
  657.  
  658.                 IDHW_SETPATCHVER -- Version of current SetPatch
  659.                         (version, revision; 0 if not available)
  660.  
  661.                 IDHW_AUDIOSYS   -- What Audio OS is used?
  662.                         (include file: IDAOS_...)
  663.  
  664.                 IDHW_OSNR       -- What AmigaOS is used?
  665.                         (include file: IDOS_...)
  666.  
  667.                 IDHW_VMMCHIPRAM -- Size of virtual Chip RAM
  668.                         (size in bytes)
  669.  
  670.                 IDHW_VMMFASTRAM -- Size of virtual Fast RAM
  671.                         (size in bytes)
  672.  
  673.                 IDHW_VMMRAM     -- Size of total virtual RAM
  674.                         (size in bytes)
  675.  
  676.                 IDHW_PLNCHIPRAM -- Size of non-virtual Chip RAM
  677.                         (size in bytes)
  678.  
  679.                 IDHW_PLNFASTRAM -- Size of non-virtual Fast RAM
  680.                         (size in bytes)
  681.  
  682.                 IDHW_PLNRAM     -- Size of total non-virtual RAM
  683.                         (size in bytes)
  684.  
  685.                 IDHW_VBR        -- Vector Base Register contents
  686.                         (address)
  687.  
  688.                 IDHW_LASTALERT  -- Last Alert code
  689.                         (ULONG, 0xFFFFFFFF: no last alert yet)
  690.  
  691.                 IDHW_VBLANKFREQ -- VBlank frequency (see execbase.h)
  692.                         (ULONG, Unit Hertz)
  693.  
  694.                 IDHW_POWERFREQ  -- Power supply frequency (see execbase.h)
  695.                         (ULONG, Unit Hertz)
  696.  
  697.                 IDHW_ECLOCK     -- System E clock frequency
  698.                         (ULONG, Unit Hertz)
  699.  
  700.                 IDHW_SLOWRAM    -- A500/A2000 "Slow" RAM expansion
  701.                         (size in bytes)
  702.  
  703.                 IDHW_GARY       -- GARY revision
  704.                         (include file: IDGRY_...)
  705.  
  706.                 IDHW_RAMSEY     -- RAMSEY revision
  707.                         (include file: IDRSY_...)
  708.  
  709.                 IDHW_BATTCLOCK  -- Battery backed up clock present?
  710.                         (BOOL)
  711.  
  712.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  713.                         (BOOL)
  714.  
  715.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  716.                         (include file: IDPPC_...)
  717.  
  718.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  719.                         (ULONG clock in MHz units, or 0: not available)
  720.  
  721.                 IDHW_CPUREV     -- [V8] Revision of the main processor
  722.                         (LONG revision or -1 if not available)
  723.  
  724.                 IDHW_CPUCLOCK   -- [V8] CPU clock
  725.                         (ULONG clock in MHz units)
  726.  
  727.                 IDHW_FPUCLOCK   -- [V8] FPU clock, if available
  728.                         (ULONG clock in MHz units, or 0: not available)
  729.  
  730.                 IDHW_RAMACCESS  -- [V8] Access time of the main board RAM
  731.                         (ULONG in ns units, or 0: not available)
  732.  
  733.                 IDHW_RAMWIDTH   -- [V8] Width of the main board RAM
  734.                         (ULONG in bit, or 0: not available)
  735.  
  736.                 IDHW_RAMCAS     -- [V8] CAS mode of the main board RAM
  737.                         (include file: IDCAS_...)
  738.  
  739.                 IDHW_RAMBANDWIDTH -- [V8] Bandwidth of the main board RAM
  740.                         (ULONG in times, or 0: not available)
  741.  
  742.                 IDHW_TCPIP      -- [V9] Used TCP/IP stack
  743.                         (include file: IDTCP_...)
  744.  
  745.                 IDHW_PPCOS      -- [V9] Used PowerPC OS
  746.                         (include file: IDPOS_...)
  747.  
  748.                 IDHW_AGNUS      -- [V9] Agnus chip type and revision
  749.                         (include file: IDAG_...)
  750.  
  751.                 IDHW_AGNUSMODE  -- [V9] Agnus chip mode
  752.                         (include file: IDAM_...)
  753.  
  754.                 IDHW_DENISE     -- [V10] Denise chip type
  755.                         (include file: IDDN_...)
  756.  
  757.                 IDHW_DENISEREV  -- [V10] Denise chip revision
  758.                         (LONG, -1 means not available)
  759.  
  760.         TagList       -- (struct TagItem *) tags that describe further
  761.                          options. You may provide NULL.
  762.  
  763.    TAGS
  764.         None yet.
  765.  
  766.    RESULT
  767.         Result        -- (ULONG) Numerical result containing the desired
  768.                 information.
  769.  
  770.    NOTE
  771.         If you queried a version, you'll find the version in the *lower*
  772.         UWORD (because it is more important) and the revision in the
  773.         *upper* UWORD.
  774.  
  775.         All memory sizes are always in bytes.
  776.  
  777.         Boolean results are ==0 for FALSE, !=0 for TRUE.
  778.  
  779.         If you have to look up the result in the include file, you might
  780.         also get a numerical result that is beyond the maximum value you'll
  781.         find there. Be prepared for it! In this case, just print "not known"
  782.         or anything similar, or use the IdHardware() result.
  783.  
  784.         This call is guaranteed to preserve all registers except D0.
  785.  
  786.    BUGS
  787.  
  788.    SEE ALSO
  789.         IdHardware(), IdHardwareUpdate()
  790.  
  791. identify.library/IdHardwareUpdate
  792.    NAME
  793.         IdHardwareUpdate - invalidate the hardware information (V8)
  794.  
  795.    SYNOPSIS
  796.         IdHardwareUpdate()
  797.  
  798.         void IdHardwareUpdate(void);
  799.  
  800.    FUNCTION
  801.         Once a hardware information has been evaluated, the result will be
  802.         stored in an internal cache. All subsequent queries return the cache
  803.         contents, irregarding of any changes.
  804.  
  805.         This function invalidates the cache and forces identify to re-check
  806.         ALL hardware features. Useful if e.g. the amount of memory has changed
  807.         after VMM has been started.
  808.  
  809.         Use this function wisely. DO NOT call it just to make sure to get the
  810.         latest information, let the user decide to do so. Also, DO NOT call
  811.         it when you will only query hardware information that will for sure
  812.         not change while run-time, e.g. CPU.
  813.  
  814.         IDHW_VBR, IDHW_LASTALERT and IDHW_TCPIP are NOT cached, so there is
  815.         absolutely no need to call IdHardwareUpdate() just to check them out.
  816.  
  817.    INPUTS
  818.  
  819.    RESULT
  820.  
  821.    NOTE
  822.         This call is guaranteed to preserve all registers.
  823.  
  824.    BUGS
  825.         Calling this function in identify V8.0 will lead to a system crash.
  826.         This has been fixed in V8.1.
  827.  
  828.    SEE ALSO
  829.         IdHardware(), IdHardwareNum()
  830.  
  831.  
  832.